(STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call
authorGerd Moellmann <gerd@gnu.org>
Tue, 9 Jan 2001 20:11:16 +0000 (20:11 +0000)
committerGerd Moellmann <gerd@gnu.org>
Tue, 9 Jan 2001 20:11:16 +0000 (20:11 +0000)
function string_bytes.
(GC_CHECK_STRING_BYTES): Moved here from alloc.c.

src/lisp.h

index f2096a5f616a5216f0d9653c95f887f810ed5eea..b1951ea4365e88c9bd6bc60df0969b358a8b16fa 100644 (file)
@@ -26,6 +26,12 @@ Boston, MA 02111-1307, USA.  */
 #define P_(proto) ()
 #endif
 
+/* Define this temporarily to hunt a bug.  If defined, the size of
+   strings is redundantly recorded in sdata structures so that it can
+   be compared to the sizes recorded in Lisp strings.  */
+
+#define GC_CHECK_STRING_BYTES 1
+
 
 /* These are default choices for the types to use.  */
 #ifdef _LP64
@@ -620,9 +626,20 @@ struct Lisp_Cons
   (XSTRING (STR)->size_byte >= 0)
 
 /* Return the length in bytes of STR.  */
+
+#ifdef GC_CHECK_STRING_BYTES
+
+struct Lisp_String;
+extern int string_bytes P_ ((struct Lisp_String *));
+#define STRING_BYTES(S) string_bytes ((S))
+
+#else /* not GC_CHECK_STRING_BYTES */
+
 #define STRING_BYTES(STR)  \
   ((STR)->size_byte < 0 ? (STR)->size : (STR)->size_byte)
 
+#endif /* not GC_CHECK_STRING_BYTES */
+
 /* Set the length in bytes of STR.  */
 #define SET_STRING_BYTES(STR, SIZE)  ((STR)->size_byte = (SIZE))